import baostock as bs
import pandas as pd

class BaoStockUtil:
    def __init__(self):
        pass

    def loginBS(self):
        #### 登陆系统 ####
        lg = bs.login()
        # 显示登陆返回信息
        print('login respond error_code:' + lg.error_code)
        print('login respond  error_msg:' + lg.error_msg)

    def logoutBS(self):
        bs.logout()

    #### 获取沪深A股历史K线数据 ####
    # 详细指标参数，参见“历史行情指标参数”章节；“分钟线”参数与“日线”参数不同。“分钟线”不包含指数。
    # 分钟线指标：date,time,code,open,high,low,close,volume,amount,adjustflag
    # 周月线指标：date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
    # frequency：数据类型，默认为d，日k线；d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据，不区分大小写；指数没有分钟线数据；周线每周最后一个交易日才可以获取，月线每月最后一个交易日才可以获取。
    # adjustflag：复权类型，默认不复权：3；1：后复权；2：前复权。已支持分钟线、日线、周线、月线前后复权。 BaoStock提供的是涨跌幅复权算法复权因子，具体介绍见：复权因子简介或者BaoStock复权因子简介。
    def query_history_k_data_plus(self,code,fields,start_day,end_day,frequency="d",adjustflag="2"):
        rs = bs.query_history_k_data_plus(code,fields,start_day, end_day,frequency, adjustflag)
        return  rs

    def query_all_stock(self,qdate):
        rs = bs.query_all_stock(qdate)
        return rs

    def daily_basic(self,ts_code,trade_date='',fields=''):
        df = pro.daily_basic(ts_code, trade_date,fields)
